package com.sikaryofficial.backend.domain.dto.resp.productactivity;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.sikaryofficial.common.core.annotation.LocalDateTimeFormat;
import com.sikaryofficial.system.api.model.att.AttachmentResp;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

import java.util.Date;
import java.util.List;

/**
 * 活动预约对象 activity_reserve_t
 *
 * @author qinjinyuan
 * @date 2023-10-30
 */
@Getter
@Setter
@ToString
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "活动预约出参", description = "活动预约出参")
public class ActivityReserveDTO {

    /**
     * 预约ID
     */
    @ApiModelProperty(value = "预约ID", example = "125344362435")
    private Long activityReserveId;

    @ApiModelProperty(value = "我的地址ID", example = "125344362435")
    private Long userAddressId;

    @ApiModelProperty(value = "活动ID", example = "1243232435")
    private Long activityId;

    @ApiModelProperty(value = "礼品ID", example = "1243232435")
    private Long prizeId;

    @ApiModelProperty(value = "活动结果ID", example = "23214153255")
    private Long activityResultId;
    /**
     * 预约状态 0-成功 1-失败
     */
    @ApiModelProperty(value = "预约状态：0-未预约, 1-reserved已预约, 2-expired已过期", example = "0")
    private Integer reserveStatus;

    @ApiModelProperty(value = "活动状态 1-可预约 ;2-活动进行中 ;3-活动结束或下架")
    private Integer activityStatus;

    @ApiModelProperty(value = "品牌", example = "SKE")
    private String prizeBrand;

    @ApiModelProperty(value = "奖品图片")
    private String coverUrl;

    @ApiModelProperty(value = "封面图片列表")
    private List<AttachmentResp> coverUrlList;

    @ApiModelProperty(value = "奖品名称", example = "奖品名称")
    private String prizeName;
    /**
     * 预约日期
     */
    @LocalDateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date reserveDate;

    @ApiModelProperty(value = "消耗积分", example = "20")
    private Integer points;

    /**
     * 活动类型 ： 1-purchase 抢购 2-lottery 抽奖  （活动类型 与积分消耗有关联）
     */
    @ApiModelProperty(value = "1-purchase 抢购 2-lottery 抽奖 3-auction 竞拍")
    private Integer activityType;

    @JsonIgnore
    private Integer tenantId;

    @ApiModelProperty(value = "抢购结果")
    private Boolean attendResult;

    /**
     * 是否隐藏活动 0-显示 1-隐藏，默认0-显示
     */
    @ApiModelProperty(value = "是否隐藏活动 0-显示 1-隐藏，默认0-显示")
    private Integer hasHide;


    @ApiModelProperty(value = "是否线上活动 0-线上 1-线下，默认线上活动")
    private Integer hasOnline;

}
